// 只要涉及Promise的, 都是链式处理
var p = new Promise((resolve) => {
  // 异步处理逻辑, 类似于接口
  let data = { '123456': 'haha' }
  // 设置Promise的状态, 并传递数据
  resolve(data)
})
function f1(code) {
  // 同步处理逻辑, 用于封装接口调用, 并对接口调用返回的结果再处理
  // 如果是缓存处理, 可以在这里先取缓存, 如果没取到,再去调用接口
  console.log(code, '11111')
  // return 一个promise对象
  return p.then((data) => {
    // 对异步处理的结果, 再加工, 并return结果
    // 如果是缓存处理程序, 可以在这里, 存储缓存结果到Locatstorage中
    console.log(data, '2')
    let d = [{ value: '123456', label: 'xixi' }]
    // 向下个then传递数据, 会作为后一个then的参数
    return d
  })
}
f1('121213').then((data) => {
  console.log(data, '3')
})
console.log('===============')

// 整个流程, 如果不封装, 等价于下面的调用
console.log('取缓存')
p.then((data) => {
  // 请求接口
  console.log('写缓存')
  console.log(data, '22222')
  let d = [{ value: '123456', label: 'xixi' }]
  // 向下个then传递数据, 会作为后一个then的参数
  return d
}).then((data) => {
  console.log('处理业务')
  console.log(data, '33333')
})
